package hehe.container.base;

import java.util.HashMap;
import java.util.Map;

/**
 * 容器上下文
 * <B>说明：</B>
 * <pre>
 *  一般用于存储bean 对象
 * </pre>
 * <B>示例：</B>
 * <pre>
 *  略
 * </pre>
 * <B>日志：</B>
 * <pre>
 *  略
 * </pre>
 * <B>注意事项：</B>
 * <pre>
 *  略
 * </pre>
 */
public class Context
{
    // 作用域-整个应用有效
    public static final String APP_SCOPE = "app";

    // 作用域-每次请求有效,请求结束后,清空
    public static final String REQUEST_SCOPE = "request";

    /**
     * bean作用域
     *<B>说明：</B>
     *<pre>
     *  略
     *</pre>
     */
    protected String scope;

    public Context(String scope)
    {
        this.scope = scope;
    }

    /**
     * bean 对象列表
     *<B>说明：</B>
     *<pre>
     *  略
     *</pre>
     */
    protected Map<String,Object> beans = new HashMap<>();

    public void setBean(String id,Object bean)
    {
        this.beans.put(id,bean);
    }

    public Object getBean(String id)
    {
        return this.beans.get(id);
    }

    public Boolean hasBean(String id)
    {
        if (this.beans.containsKey(id)) {
            return true;
        } else {
            return false;
        }
    }

    public void remove(String id)
    {
        this.beans.remove(id);
    }

    /**
     * 清空整个上线文
     *<B>说明：</B>
     *<pre>
     *  主要是清空bean列表
     *</pre>
     */
    public void clean()
    {
        this.beans.clear();
    }

    /**
     * 销毁整个上下文对象
     *<B>说明：</B>
     *<pre>
     *  略
     *</pre>
     */
    public void destroy()
    {

    }


}
